<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>CANopenNode: Stack configuration</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">CANopenNode
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__CO__STACK__CONFIG.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a>  </div>
  <div class="headertitle">
<div class="title">Stack configuration<div class="ingroups"><a class="el" href="group__CO__CANopen__301.html">CANopen_301</a> &raquo; <a class="el" href="group__CO__driver.html">Driver</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Stack configuration macros specify, which parts of the stack will be enabled.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gab55099df45bed12f182ef7c0c779dc14"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a>&#160;&#160;&#160;0x1000</td></tr>
<tr class="memdesc:gab55099df45bed12f182ef7c0c779dc14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable custom callback after CAN receive.  <a href="#gab55099df45bed12f182ef7c0c779dc14">More...</a><br /></td></tr>
<tr class="separator:gab55099df45bed12f182ef7c0c779dc14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e84c3a9256f15246be7766a61096c2d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a>&#160;&#160;&#160;0x2000</td></tr>
<tr class="memdesc:ga9e84c3a9256f15246be7766a61096c2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable calculation of timerNext_us variable.  <a href="#ga9e84c3a9256f15246be7766a61096c2d">More...</a><br /></td></tr>
<tr class="separator:ga9e84c3a9256f15246be7766a61096c2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa3b1f1b4931175bf9c67a5d45633e76"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#gafa3b1f1b4931175bf9c67a5d45633e76">CO_CONFIG_NMT</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_NMT_CALLBACK_CHANGE | CO_CONFIG_NMT_MASTER0)</td></tr>
<tr class="memdesc:gafa3b1f1b4931175bf9c67a5d45633e76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of NMT_Heartbeat object.  <a href="#gafa3b1f1b4931175bf9c67a5d45633e76">More...</a><br /></td></tr>
<tr class="separator:gafa3b1f1b4931175bf9c67a5d45633e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad4408a57b8199dbb5e1f5483abd22fdd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#gad4408a57b8199dbb5e1f5483abd22fdd">CO_CONFIG_SDO</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_SDO_SEGMENTED | CO_CONFIG_SDO_BLOCK)</td></tr>
<tr class="memdesc:gad4408a57b8199dbb5e1f5483abd22fdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of SDO server object.  <a href="#gad4408a57b8199dbb5e1f5483abd22fdd">More...</a><br /></td></tr>
<tr class="separator:gad4408a57b8199dbb5e1f5483abd22fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga905cec21ba3e315a652dad23c3595a16"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga905cec21ba3e315a652dad23c3595a16">CO_CONFIG_SDO_BUFFER_SIZE</a>&#160;&#160;&#160;32</td></tr>
<tr class="memdesc:ga905cec21ba3e315a652dad23c3595a16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the internal data buffer for the SDO server.  <a href="#ga905cec21ba3e315a652dad23c3595a16">More...</a><br /></td></tr>
<tr class="separator:ga905cec21ba3e315a652dad23c3595a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16aa1479ffd52a627d1053c20f844b62"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga16aa1479ffd52a627d1053c20f844b62">CO_CONFIG_EM</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_EM_CONSUMER)</td></tr>
<tr class="memdesc:ga16aa1479ffd52a627d1053c20f844b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of Emergency object.  <a href="#ga16aa1479ffd52a627d1053c20f844b62">More...</a><br /></td></tr>
<tr class="separator:ga16aa1479ffd52a627d1053c20f844b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7368d68cb039983bc8cc164410877098"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga7368d68cb039983bc8cc164410877098">CO_CONFIG_HB_CONS</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_HB_CONS_CALLBACK_CHANGE | CO_CONFIG_HB_CONS_CALLBACK_MULTI | CO_CONFIG_HB_CONS_QUERY_FUNCT)</td></tr>
<tr class="memdesc:ga7368d68cb039983bc8cc164410877098"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of Heartbeat Consumer.  <a href="#ga7368d68cb039983bc8cc164410877098">More...</a><br /></td></tr>
<tr class="separator:ga7368d68cb039983bc8cc164410877098"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa20d1b49249b7f5a15963cc1a4611be9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#gaa20d1b49249b7f5a15963cc1a4611be9">CO_CONFIG_PDO</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_PDO_SYNC_ENABLE | CO_CONFIG_RPDO_CALLS_EXTENSION | CO_CONFIG_TPDO_CALLS_EXTENSION)</td></tr>
<tr class="memdesc:gaa20d1b49249b7f5a15963cc1a4611be9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of PDO.  <a href="#gaa20d1b49249b7f5a15963cc1a4611be9">More...</a><br /></td></tr>
<tr class="separator:gaa20d1b49249b7f5a15963cc1a4611be9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d1d2210fdf2b916ca1d82c4933856bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga7d1d2210fdf2b916ca1d82c4933856bc">CO_CONFIG_SYNC</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a>)</td></tr>
<tr class="memdesc:ga7d1d2210fdf2b916ca1d82c4933856bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of SYNC.  <a href="#ga7d1d2210fdf2b916ca1d82c4933856bc">More...</a><br /></td></tr>
<tr class="separator:ga7d1d2210fdf2b916ca1d82c4933856bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac8ee65cd62dbee2982f5304513402a57"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#gac8ee65cd62dbee2982f5304513402a57">CO_CONFIG_SDO_CLI</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_SDO_CLI_SEGMENTED | CO_CONFIG_SDO_CLI_BLOCK | CO_CONFIG_SDO_CLI_LOCAL)</td></tr>
<tr class="memdesc:gac8ee65cd62dbee2982f5304513402a57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of SDO client object.  <a href="#gac8ee65cd62dbee2982f5304513402a57">More...</a><br /></td></tr>
<tr class="separator:gac8ee65cd62dbee2982f5304513402a57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga763b09ab827365e46f10234bd9c0acfd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga763b09ab827365e46f10234bd9c0acfd">CO_CONFIG_SDO_CLI_BUFFER_SIZE</a>&#160;&#160;&#160;32</td></tr>
<tr class="memdesc:ga763b09ab827365e46f10234bd9c0acfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the internal data buffer for the SDO client.  <a href="#ga763b09ab827365e46f10234bd9c0acfd">More...</a><br /></td></tr>
<tr class="separator:ga763b09ab827365e46f10234bd9c0acfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaba4a59929bbd8512ca954ba8fcf1dfe6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#gaba4a59929bbd8512ca954ba8fcf1dfe6">CO_CONFIG_TIME</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a>)</td></tr>
<tr class="memdesc:gaba4a59929bbd8512ca954ba8fcf1dfe6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of TIME.  <a href="#gaba4a59929bbd8512ca954ba8fcf1dfe6">More...</a><br /></td></tr>
<tr class="separator:gaba4a59929bbd8512ca954ba8fcf1dfe6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga423160131d618b5d57bc7c016ee369fd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga423160131d618b5d57bc7c016ee369fd">CO_CONFIG_LEDS</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_LEDS_ENABLE)</td></tr>
<tr class="memdesc:ga423160131d618b5d57bc7c016ee369fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of LEDs object.  <a href="#ga423160131d618b5d57bc7c016ee369fd">More...</a><br /></td></tr>
<tr class="separator:ga423160131d618b5d57bc7c016ee369fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafeb75d750efb0879fe11a5482b6629f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#gafeb75d750efb0879fe11a5482b6629f3">CO_CONFIG_LSS</a>&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | CO_CONFIG_LSS_SLAVE | CO_CONFIG_LSS_SLAVE_FASTSCAN_DIRECT_RESPOND | CO_CONFIG_LSS_MASTER )</td></tr>
<tr class="memdesc:gafeb75d750efb0879fe11a5482b6629f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of LSS objects.  <a href="#gafeb75d750efb0879fe11a5482b6629f3">More...</a><br /></td></tr>
<tr class="separator:gafeb75d750efb0879fe11a5482b6629f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9af15f76cd14fece499764499c6bc2d3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga9af15f76cd14fece499764499c6bc2d3">CO_CONFIG_GTW</a>&#160;&#160;&#160;(CO_CONFIG_GTW_MULTI_NET | CO_CONFIG_GTW_ASCII | CO_CONFIG_GTW_ASCII_SDO | CO_CONFIG_GTW_ASCII_NMT | CO_CONFIG_GTW_ASCII_LSS | CO_CONFIG_GTW_ASCII_LOG | CO_CONFIG_GTW_ASCII_ERROR_DESC | CO_CONFIG_GTW_ASCII_PRINT_HELP | CO_CONFIG_GTW_ASCII_PRINT_LEDS)</td></tr>
<tr class="memdesc:ga9af15f76cd14fece499764499c6bc2d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration of gateway object usage.  <a href="#ga9af15f76cd14fece499764499c6bc2d3">More...</a><br /></td></tr>
<tr class="separator:ga9af15f76cd14fece499764499c6bc2d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa864e7c6e7ebd3fc7ce424dc3c94db9d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#gaa864e7c6e7ebd3fc7ce424dc3c94db9d">CO_CONFIG_GTW_BLOCK_DL_LOOP</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:gaa864e7c6e7ebd3fc7ce424dc3c94db9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of loops of <a class="el" href="group__CO__SDOclient.html#ga97e554a6a01f32eea178ff9541cfce02" title="Process SDO download communication. ">CO_SDOclientDownload()</a> in case of block download.  <a href="#gaa864e7c6e7ebd3fc7ce424dc3c94db9d">More...</a><br /></td></tr>
<tr class="separator:gaa864e7c6e7ebd3fc7ce424dc3c94db9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7903ae4ca7939fc32bd747224e868a38"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga7903ae4ca7939fc32bd747224e868a38">CO_CONFIG_GTWA_COMM_BUF_SIZE</a>&#160;&#160;&#160;200</td></tr>
<tr class="memdesc:ga7903ae4ca7939fc32bd747224e868a38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of command buffer in ASCII gateway object.  <a href="#ga7903ae4ca7939fc32bd747224e868a38">More...</a><br /></td></tr>
<tr class="separator:ga7903ae4ca7939fc32bd747224e868a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f471dca1341879dc56c2e0a2c73cb29"><td class="memItemLeft" align="right" valign="top"><a id="ga4f471dca1341879dc56c2e0a2c73cb29"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CO__STACK__CONFIG.html#ga4f471dca1341879dc56c2e0a2c73cb29">CO_CONFIG_GTWA_LOG_BUF_SIZE</a>&#160;&#160;&#160;2000</td></tr>
<tr class="memdesc:ga4f471dca1341879dc56c2e0a2c73cb29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of message log buffer in ASCII gateway object. <br /></td></tr>
<tr class="separator:ga4f471dca1341879dc56c2e0a2c73cb29"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Stack configuration macros specify, which parts of the stack will be enabled. </p>
<p>Default values for stack configuration macros are set in <a class="el" href="CO__driver_8h.html" title="Interface between CAN hardware and CANopenNode. ">CO_driver.h</a> file. They can be overridden by <a class="el" href="CO__driver__target_8h.html" title="Linux socketCAN specific definitions for CANopenNode. ">CO_driver_target.h</a> file. If specified so, they can further be overridden by CO_driver_custom.h file.</p>
<p>Stack configuration macro is specified as bits, where each bit enables/disables some part of the configurable CANopenNode object. Flags are used for enabling or checking specific bit. Multiple flags can be ORed together.</p>
<p>Configuration macros may be in relation with <a class="el" href="group__CO__NO__OBJ.html">CANopen configuration</a> macros from <a class="el" href="CANopen_8h.html" title="Main CANopenNode file. ">CANopen.h</a> file. Former enables/disables stack functionalities, latter enables/disables objects in object dictionary. Note that some objects in object dictionary may need some configuration macros to be enabled. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga16aa1479ffd52a627d1053c20f844b62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga16aa1479ffd52a627d1053c20f844b62">&#9670;&nbsp;</a></span>CO_CONFIG_EM</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_EM&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_EM_CONSUMER)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of Emergency object. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive. ">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing emergency condition by <a class="el" href="group__CO__Emergency.html#ga9c9b7258698aadf6e9365bc0d1324be8" title="Report error condition. ">CO_errorReport()</a> or <a class="el" href="group__CO__Emergency.html#ga14947a08d1c68446ee3356f00159174f" title="Reset error condition. ">CO_errorReset()</a> call. Callback is configured by <a class="el" href="group__CO__Emergency.html#ga94efd78032de3667e2a89780b08aabed" title="Initialize Emergency callback function. ">CO_EM_initCallbackPre()</a>.</li>
<li><a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d" title="Enable calculation of timerNext_us variable. ">CO_CONFIG_FLAG_TIMERNEXT</a> - Enable calculation of timerNext_us variable inside <a class="el" href="group__CO__Emergency.html#gaa18d7bb809b9a0f0a3104664dc56a1c4" title="Process Error control and Emergency object. ">CO_EM_process()</a>.</li>
<li>CO_CONFIG_EM_CONSUMER - Enable emergency consumer. </li>
</ul>

</div>
</div>
<a id="gab55099df45bed12f182ef7c0c779dc14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab55099df45bed12f182ef7c0c779dc14">&#9670;&nbsp;</a></span>CO_CONFIG_FLAG_CALLBACK_PRE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_FLAG_CALLBACK_PRE&#160;&#160;&#160;0x1000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable custom callback after CAN receive. </p>
<p>Flag enables optional callback functions, which are part of some CANopenNode objects. Callbacks can optionally be registered by application, which configures threads in operating system. Callbacks are called after something has been preprocessed by higher priority thread and must be further processed by lower priority thread. For example when CAN message is received and preprocessed, callback should wake up mainline processing function. See also <a class="el" href="group__CO__CANopen.html#ga7a36da54b801074032622708e06a742e">CO_process()</a> function.</p>
<p>If callback functions are used, they must be initialized separately, after the object initialization.</p>
<p>This flag is common to multiple configuration macros. </p>

</div>
</div>
<a id="ga9e84c3a9256f15246be7766a61096c2d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9e84c3a9256f15246be7766a61096c2d">&#9670;&nbsp;</a></span>CO_CONFIG_FLAG_TIMERNEXT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_FLAG_TIMERNEXT&#160;&#160;&#160;0x2000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable calculation of timerNext_us variable. </p>
<p>Calculation of the timerNext_us variable is useful for smooth operation on operating system. See also <a class="el" href="group__CO__CANopen.html#ga7a36da54b801074032622708e06a742e">CO_process()</a> function.</p>
<p>This flag is common to multiple configuration macros. </p>

</div>
</div>
<a id="ga9af15f76cd14fece499764499c6bc2d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9af15f76cd14fece499764499c6bc2d3">&#9670;&nbsp;</a></span>CO_CONFIG_GTW</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_GTW&#160;&#160;&#160;(CO_CONFIG_GTW_MULTI_NET | CO_CONFIG_GTW_ASCII | CO_CONFIG_GTW_ASCII_SDO | CO_CONFIG_GTW_ASCII_NMT | CO_CONFIG_GTW_ASCII_LSS | CO_CONFIG_GTW_ASCII_LOG | CO_CONFIG_GTW_ASCII_ERROR_DESC | CO_CONFIG_GTW_ASCII_PRINT_HELP | CO_CONFIG_GTW_ASCII_PRINT_LEDS)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of gateway object usage. </p>
<p>Gateway object is covered by standard CiA 309 - CANopen access from other networks. It enables usage of the NMT master, SDO client and LSS master as a gateway device.</p>
<p>Possible flags, can be ORed:</p><ul>
<li>CO_CONFIG_GTW_MULTI_NET - Enable multiple network interfaces in gateway device. This functionality is currently not implemented.</li>
<li>CO_CONFIG_GTW_ASCII - Enable gateway device with ASCII mapping (CiA 309-3)</li>
<li>CO_CONFIG_GTW_ASCII_SDO - Enable SDO client</li>
<li>CO_CONFIG_GTW_ASCII_NMT - Enable NMT master</li>
<li>CO_CONFIG_GTW_ASCII_LSS - Enable LSS master</li>
<li>CO_CONFIG_GTW_ASCII_LOG - Enable non-standard message log read</li>
<li>CO_CONFIG_GTW_ASCII_ERROR_DESC - Print error description as additional comments in gateway-ascii device for SDO and gateway errors.</li>
<li>CO_CONFIG_GTW_ASCII_PRINT_HELP - use non-standard command "help" to print help usage.</li>
<li>CO_CONFIG_GTW_ASCII_PRINT_LEDS - Display "red" and "green" CANopen status LED diodes on terminal. </li>
</ul>

</div>
</div>
<a id="gaa864e7c6e7ebd3fc7ce424dc3c94db9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa864e7c6e7ebd3fc7ce424dc3c94db9d">&#9670;&nbsp;</a></span>CO_CONFIG_GTW_BLOCK_DL_LOOP</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_GTW_BLOCK_DL_LOOP&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Number of loops of <a class="el" href="group__CO__SDOclient.html#ga97e554a6a01f32eea178ff9541cfce02" title="Process SDO download communication. ">CO_SDOclientDownload()</a> in case of block download. </p>
<p>If SDO clint has block download in progress and OS has buffer for CAN tx messages, then <a class="el" href="group__CO__SDOclient.html#ga97e554a6a01f32eea178ff9541cfce02" title="Process SDO download communication. ">CO_SDOclientDownload()</a> functionion can be called multiple times within own loop (up to 127). This can speed-up SDO block transfer. </p>

</div>
</div>
<a id="ga7903ae4ca7939fc32bd747224e868a38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7903ae4ca7939fc32bd747224e868a38">&#9670;&nbsp;</a></span>CO_CONFIG_GTWA_COMM_BUF_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_GTWA_COMM_BUF_SIZE&#160;&#160;&#160;200</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Size of command buffer in ASCII gateway object. </p>
<p>If large amount of data is transferred (block transfer), then this should be increased to 1000 or more. Buffer may be refilled between the block transfer. </p>

</div>
</div>
<a id="ga7368d68cb039983bc8cc164410877098"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7368d68cb039983bc8cc164410877098">&#9670;&nbsp;</a></span>CO_CONFIG_HB_CONS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_HB_CONS&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_HB_CONS_CALLBACK_CHANGE | CO_CONFIG_HB_CONS_CALLBACK_MULTI | CO_CONFIG_HB_CONS_QUERY_FUNCT)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of Heartbeat Consumer. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive. ">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing received heartbeat CAN message. Callback is configured by <a class="el" href="group__CO__HBconsumer.html#ga2faa596dcebbec8f486788a791d638be" title="Initialize Heartbeat consumer callback function. ">CO_HBconsumer_initCallbackPre()</a>.</li>
<li><a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d" title="Enable calculation of timerNext_us variable. ">CO_CONFIG_FLAG_TIMERNEXT</a> - Enable calculation of timerNext_us variable inside <a class="el" href="group__CO__HBconsumer.html#ga29e01b5fe6392ce688e8ac57d966258f" title="Process Heartbeat consumer object. ">CO_HBconsumer_process()</a>.</li>
<li>CO_CONFIG_HB_CONS_CALLBACK_CHANGE - Enable custom callback after NMT state of the monitored node changes. Callback is configured by <a class="el" href="group__CO__HBconsumer.html#gaf6cde91423fe90950ec176b1ae7fe44e" title="Initialize Heartbeat consumer NMT changed callback function. ">CO_HBconsumer_initCallbackNmtChanged()</a>.</li>
<li>CO_CONFIG_HB_CONS_CALLBACK_MULTI - Enable multiple custom callbacks, which can be configured for each monitored node. Callback are configured by <a class="el" href="group__CO__HBconsumer.html#ga6c9bd0df815428719b9f9429ed4476a9" title="Initialize Heartbeat consumer started callback function. ">CO_HBconsumer_initCallbackHeartbeatStarted()</a>, <a class="el" href="group__CO__HBconsumer.html#gaef359610a0cdd1331da266be9c55c2d2" title="Initialize Heartbeat consumer timeout callback function. ">CO_HBconsumer_initCallbackTimeout()</a> and <a class="el" href="group__CO__HBconsumer.html#ga8758a7bd92aa458b90d5da9221cc694f" title="Initialize Heartbeat consumer remote reset detected callback function. ">CO_HBconsumer_initCallbackRemoteReset()</a> functions.</li>
<li>CO_CONFIG_HB_CONS_QUERY_FUNCT - Enable functions for query HB state or NMT state of the specific monitored node. </li>
</ul>

</div>
</div>
<a id="ga423160131d618b5d57bc7c016ee369fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga423160131d618b5d57bc7c016ee369fd">&#9670;&nbsp;</a></span>CO_CONFIG_LEDS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_LEDS&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_LEDS_ENABLE)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of LEDs object. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d" title="Enable calculation of timerNext_us variable. ">CO_CONFIG_FLAG_TIMERNEXT</a> - Enable calculation of timerNext_us variable inside <a class="el" href="group__CO__NMT__Heartbeat.html#ga1fe239fe8212f8fe671bf9a355020531" title="Process received NMT and produce Heartbeat messages. ">CO_NMT_process()</a>.</li>
<li>CO_CONFIG_LEDS_ENABLE - Enable calculation of the CANopen LED indicators. </li>
</ul>

</div>
</div>
<a id="gafeb75d750efb0879fe11a5482b6629f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafeb75d750efb0879fe11a5482b6629f3">&#9670;&nbsp;</a></span>CO_CONFIG_LSS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_LSS&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | CO_CONFIG_LSS_SLAVE | CO_CONFIG_LSS_SLAVE_FASTSCAN_DIRECT_RESPOND | CO_CONFIG_LSS_MASTER )</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of LSS objects. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive. ">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing received CAN message. Callback is configured by <a class="el" href="group__CO__LSSmaster.html#gabfeb7e75d88b76bb00c1740381c7b53f" title="Initialize LSSmasterRx callback function. ">CO_LSSmaster_initCallbackPre()</a>.</li>
<li>CO_CONFIG_LSS_SLAVE - Enable LSS slave</li>
<li>CO_CONFIG_LSS_SLAVE_FASTSCAN_DIRECT_RESPOND - Send LSS fastscan respond directly from CO_LSSslave_receive() function.</li>
<li>CO_CONFIG_LSS_MASTER - Enable LSS master </li>
</ul>

</div>
</div>
<a id="gafa3b1f1b4931175bf9c67a5d45633e76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafa3b1f1b4931175bf9c67a5d45633e76">&#9670;&nbsp;</a></span>CO_CONFIG_NMT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_NMT&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_NMT_CALLBACK_CHANGE | CO_CONFIG_NMT_MASTER0)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of NMT_Heartbeat object. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive. ">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing received NMT CAN message. Callback is configured by <a class="el" href="group__CO__NMT__Heartbeat.html#ga58b6123938e950b5e8c38ec0b9caeec4" title="Initialize NMT callback function after message preprocessed. ">CO_NMT_initCallbackPre()</a>.</li>
<li><a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d" title="Enable calculation of timerNext_us variable. ">CO_CONFIG_FLAG_TIMERNEXT</a> - Enable calculation of timerNext_us variable inside <a class="el" href="group__CO__NMT__Heartbeat.html#ga1fe239fe8212f8fe671bf9a355020531" title="Process received NMT and produce Heartbeat messages. ">CO_NMT_process()</a>.</li>
<li>CO_CONFIG_NMT_CALLBACK_CHANGE - Enable custom callback after NMT state changes. Callback is configured by <a class="el" href="group__CO__NMT__Heartbeat.html#ga87d153e39b32586b67ee6dd47dfce787" title="Initialize NMT callback function. ">CO_NMT_initCallbackChanged()</a>.</li>
<li>CO_CONFIG_NMT_MASTER - Enable simple NMT master </li>
</ul>

</div>
</div>
<a id="gaa20d1b49249b7f5a15963cc1a4611be9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa20d1b49249b7f5a15963cc1a4611be9">&#9670;&nbsp;</a></span>CO_CONFIG_PDO</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_PDO&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_PDO_SYNC_ENABLE | CO_CONFIG_RPDO_CALLS_EXTENSION | CO_CONFIG_TPDO_CALLS_EXTENSION)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of PDO. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive. ">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing received RPDO CAN message. Callback is configured by <a class="el" href="group__CO__PDO.html#ga34532746ccf88ccfa835716e89369478" title="Initialize RPDO callback function. ">CO_RPDO_initCallbackPre()</a>.</li>
<li><a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d" title="Enable calculation of timerNext_us variable. ">CO_CONFIG_FLAG_TIMERNEXT</a> - Enable calculation of timerNext_us variable inside <a class="el" href="group__CO__PDO.html#ga0bb0d1b09d37ca19e01d47d8d0004f6b" title="Process transmitting PDO messages. ">CO_TPDO_process()</a>.</li>
<li>CO_CONFIG_PDO_SYNC_ENABLE - Enable SYNC object inside PDO objects.</li>
<li>CO_CONFIG_RPDO_CALLS_EXTENSION - Enable calling configured extension callbacks when received RPDO CAN message modifies OD entries.</li>
<li>CO_CONFIG_TPDO_CALLS_EXTENSION - Enable calling configured extension callbacks before TPDO CAN message is sent. </li>
</ul>

</div>
</div>
<a id="gad4408a57b8199dbb5e1f5483abd22fdd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad4408a57b8199dbb5e1f5483abd22fdd">&#9670;&nbsp;</a></span>CO_CONFIG_SDO</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_SDO&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_SDO_SEGMENTED | CO_CONFIG_SDO_BLOCK)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of SDO server object. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive. ">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing received SDO CAN message. Callback is configured by <a class="el" href="group__CO__SDOserver.html#ga100bebd316fd456c67cfa945d97e0dee" title="Initialize SDOrx callback function. ">CO_SDO_initCallbackPre()</a>.</li>
<li><a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d" title="Enable calculation of timerNext_us variable. ">CO_CONFIG_FLAG_TIMERNEXT</a> - Enable calculation of timerNext_us variable inside <a class="el" href="group__CO__SDOserver.html#gaf9df5a4eef12be3e585e7601e64185bb" title="Process SDO communication. ">CO_SDO_process()</a>.</li>
<li>CO_CONFIG_SDO_SEGMENTED - Enable SDO server segmented transfer.</li>
<li>CO_CONFIG_SDO_BLOCK - Enable SDO server block transfer. If set, then CO_CONFIG_SDO_SEGMENTED must also be set. </li>
</ul>

</div>
</div>
<a id="ga905cec21ba3e315a652dad23c3595a16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga905cec21ba3e315a652dad23c3595a16">&#9670;&nbsp;</a></span>CO_CONFIG_SDO_BUFFER_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_SDO_BUFFER_SIZE&#160;&#160;&#160;32</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Size of the internal data buffer for the SDO server. </p>
<p>Size must be at least equal to size of largest variable in <a class="el" href="group__CO__SDO__objectDictionary.html">Object dictionary</a>. If data type is domain, data length is not limited to SDO buffer size. If block transfer is implemented, value should be set to 889.</p>
<p>Value can be in range from 7 to 889 bytes. </p>

</div>
</div>
<a id="gac8ee65cd62dbee2982f5304513402a57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac8ee65cd62dbee2982f5304513402a57">&#9670;&nbsp;</a></span>CO_CONFIG_SDO_CLI</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_SDO_CLI&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a> | CO_CONFIG_SDO_CLI_SEGMENTED | CO_CONFIG_SDO_CLI_BLOCK | CO_CONFIG_SDO_CLI_LOCAL)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of SDO client object. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive. ">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing received SDO CAN message. Callback is configured by <a class="el" href="group__CO__SDOclient.html#ga4377eaecc3bd0a8320a2bbe1ef0ef776" title="Initialize SDOclient callback function. ">CO_SDOclient_initCallbackPre()</a>.</li>
<li><a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d" title="Enable calculation of timerNext_us variable. ">CO_CONFIG_FLAG_TIMERNEXT</a> - Enable calculation of timerNext_us variable inside <a class="el" href="group__CO__SDOclient.html#ga6599e156e045d145783372387387ac5a" title="Initiate SDO download communication. ">CO_SDOclientDownloadInitiate()</a>, <a class="el" href="group__CO__SDOclient.html#ga97e554a6a01f32eea178ff9541cfce02" title="Process SDO download communication. ">CO_SDOclientDownload()</a>, <a class="el" href="group__CO__SDOclient.html#ga38f19daa81decfbd510425e95ed7e0d3" title="Initiate SDO upload communication. ">CO_SDOclientUploadInitiate()</a>, <a class="el" href="group__CO__SDOclient.html#ga71f1bdb1222adda40c9ce612414bd88d" title="Process SDO upload communication. ">CO_SDOclientUpload()</a>.</li>
<li>CO_CONFIG_SDO_CLI_SEGMENTED - Enable SDO client segmented transfer.</li>
<li>CO_CONFIG_SDO_CLI_BLOCK - Enable SDO client block transfer. If set, then CO_CONFIG_SDO_CLI_SEGMENTED must also be set.</li>
<li>CO_CONFIG_SDO_CLI_LOCAL - Enable local transfer, if Node-ID of the SDO server is the same as node-ID of the SDO client. (SDO client is the same device as SDO server.) Transfer data directly without communication on CAN. </li>
</ul>

</div>
</div>
<a id="ga763b09ab827365e46f10234bd9c0acfd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga763b09ab827365e46f10234bd9c0acfd">&#9670;&nbsp;</a></span>CO_CONFIG_SDO_CLI_BUFFER_SIZE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_SDO_CLI_BUFFER_SIZE&#160;&#160;&#160;32</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Size of the internal data buffer for the SDO client. </p>
<p>Circular buffer is used for SDO communication. it can be read or written between successive SDO calls. So size of the buffer can be lower than size of the actual size of data transferred. If only segmented transfer is used, then buffer size can be as low as 7 bytes, if data are read/written each cycle. If block transfer is used, buffer size should be set to at least 889 bytes, so maximum blksize can be used. In that case data should be read/written proper time between cycles. </p>

</div>
</div>
<a id="ga7d1d2210fdf2b916ca1d82c4933856bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7d1d2210fdf2b916ca1d82c4933856bc">&#9670;&nbsp;</a></span>CO_CONFIG_SYNC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_SYNC&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a> | <a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d">CO_CONFIG_FLAG_TIMERNEXT</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of SYNC. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive. ">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing received SYNC CAN message. Callback is configured by <a class="el" href="group__CO__SYNC.html#gaf1005766c7f1588262b018fe04960777" title="Initialize SYNC callback function. ">CO_SYNC_initCallbackPre()</a>.</li>
<li><a class="el" href="group__CO__STACK__CONFIG.html#ga9e84c3a9256f15246be7766a61096c2d" title="Enable calculation of timerNext_us variable. ">CO_CONFIG_FLAG_TIMERNEXT</a> - Enable calculation of timerNext_us variable inside <a class="el" href="group__CO__SYNC.html#ga66b8f42fd430daa2a57ff15aa49c814c" title="Process SYNC communication. ">CO_SYNC_process()</a>. </li>
</ul>

</div>
</div>
<a id="gaba4a59929bbd8512ca954ba8fcf1dfe6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaba4a59929bbd8512ca954ba8fcf1dfe6">&#9670;&nbsp;</a></span>CO_CONFIG_TIME</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CO_CONFIG_TIME&#160;&#160;&#160;(<a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14">CO_CONFIG_FLAG_CALLBACK_PRE</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configuration of TIME. </p>
<p>Possible flags, can be ORed:</p><ul>
<li><a class="el" href="group__CO__STACK__CONFIG.html#gab55099df45bed12f182ef7c0c779dc14" title="Enable custom callback after CAN receive. ">CO_CONFIG_FLAG_CALLBACK_PRE</a> - Enable custom callback after preprocessing received TIME CAN message. Callback is configured by <a class="el" href="group__CO__TIME.html#gae2f03663f1477cdc551b61cf5689cd6b" title="Initialize TIME callback function. ">CO_TIME_initCallbackPre()</a>. </li>
</ul>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Tue Jun 9 2020 17:29:32 for CANopenNode by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
